#ifndef	CLASS_H
#define	CLASS_H

#include "base.h"
#include "List.h"

struct String{
	uint32	length;
	uint16	data;
};

struct Type{
	String*	name;
};

struct Field{
	String*	name;
	Type*	type;
	uint32	modifiers;
	uint16	offset;
};

struct Prototype{
	String*	name;
	Type*	returnType;
	
};

struct Method{
	Prototype*	prototype;
	uint64		implementation;
	List<Type*>	parameters;
};

struct Class{
	Type*	type;
	Type*	parent;
	List<Field*>	fields;
	List<Method*>	methods;
	uint16	size;
};

#endif